\section{Introduction}

Quality is a significant and dynamic requirement in development of software systems. Software Quality attributes such as security, performance, maintainability etc. are largely influenced by software architectures. Architecting softwares with quality attributes is a challenging task. 

Security is an important quality attribute for software. Security is an emergent property and we can never call a system sufficiently secure. Increasing vulnerabilities and threats lead towards new security solution. As it was the case in Microsoft Internet explorer IIS was initially introduced in 1995,  until 2001 we had the version 5.1. There was no major architectural change in the architecture of IIS but it was re-architecting to improve the security of IIS server \cite {Jie2005}. The changing security and other quality attribute requirements should be handled earlier in software development cycle. Software architecture is one of the possible abstraction level where security and other quality attributes can be introduced \cite {Brice2010}

Architectures are specified using Architecture Description Languages (ADL). The ADLs available in literature do not support the modeling of evolving concerns \cite {Nenad2000}. There are some ADLs such as Saf-Archie \cite {Barais2008} in which evolving concerns are modeled using technologies such as Aspect Orientation \cite {Batista2006}. Barais et al. introduce the notion of Aspectual Architecture and provide a way to join it with the base architecture using join points and model transformation. This approach provides separation of concerns and joins aspect orientation with software architecture. In order to use this approach one needs to have knowledge of aspect orientation, software architecture and model driven engineering. One of the drawback of approach is that the work is based on saf-archie which has abstract constructs. A more generalized model driven engineering approach is required that could be generalized for multiple architectural languages.

In this work we are interested to present an evolution modeling approach for software architectures. To express our work we are using Architecture Analysis and Design Language (AADL) \cite {International2004}. AADL is an SAE standard architectural language. AADL provides both structural and behavioral constructs to model software systems. It provides tool support and an XMI interchange format for meta-model. The language AADL provides an extension mechanism and a number of extensions for AADL are available such as AADL Behavior Annex, AADL Error Annex \cite {2009}.

The evolving software architectures will be used to calculate the resilience of the system. Resilience is defined in Dependability and Resilience Framework \cite{Nicolas2011} as an improvement in the satisfaction of an evolving system with respect to some evolving properties. DREF is a framework in which formal definitions for concepts regarding resilience is provided, including entity, property, satisfaction tolerance etc. Model driven engineering perspective of DREF gives a clue to define Domain Specific languages supporting resilience calculations. We intend to use DREF framework without evolution modeling support to evaluate resilience of the system. We are also interested in behavior testing of evolving system that would be a step toward satisfaction calculation.

In section II the background of work is provided, in section III we present in detail the evolution modeling support for AADL, apply it on a case study and evaluate DREF satisfaction function, this section also includes some work towards generation of protocol state machines from AADL behavior constructs. In section VI we conclude the work and present future directions.
